Many organizations have discovered that the cost, effort, and risk to replace older legacy systems with modern software and database systems are overwhelming. Rather, many organizations continue to place an emphasis on supporting legacy systems by bridging gaps between old and new computing technologies, wherein bridging the gap often includes modification of existing legacy data and programming languages.
COBOL is one such programming language. Despite the existence of modern, object-oriented programming languages and Internet-based applications, COBOL will likely remain a vital part of many organizations' computing centers. Traditional COBOL, however, lacks some of the flexibility of modern languages, such as the ability to read extensible markup language (XML) documents.
XML resembles Hypertext Markup Language (HTML) in appearance and structure; however, XML is functionally different: HTML specifies how to display data, while XML is used to describe data. Accordingly, XML has provided developers with a means for displaying different types of data in a consistent manner. Generally, a developer may create formatting instructions within a data type definition (DTD) file. When a data type is defined, a developer need only add an XML tag within an HTML document which corresponds to a tag in the DTD.
Because COBOL is a legacy programming language, it must often be retrofitted to support various functionality relating to newer computing technologies. Technologies such as XML were not designed with older computing technologies such as COBOL in mind. Modifying the language or creating add-on products most often results in extra layers of sophistication and complexity for the developer. One such example is “XML GENERATE,” which is a function included within IBM® Enterprise COBOL. While XML GENERATE provides an effective means to generate and process various types of XML, the generated XML is limited by the input data structure of the COBOL code both in it's structure and in tag names. Further, it typically requires the creation of complex COBOL structures that mimic XML data structures. Enhancing this generated XML to bring it to an installation XML standard requires further processing of this XML.